package com.ssyt.yt1.day3.array;

import java.util.ArrayList;

/**
 * 弹性数组
 * 
 * @author Administrator
 *
 */
public class ArrayAutoIncrement {

	/**
	 * 实现数组自增
	 * 
	 * @param numbers
	 * @param newValue
	 * @return
	 */
	public static int[] increment(int[] numbers, int newValue) {
		int[] numbers2 = new int[numbers.length + 1];
		System.arraycopy(numbers, 0, numbers2, 0, numbers.length);
		numbers2[1] = newValue;
		return numbers2;
	}

	/**
	 * 测试数组自增
	 */
	public static void testIncrement() {
		int[] numbers = { 1 };
		int[] numbers2 = increment(numbers, 2);
		for (int value : numbers2) {
			System.out.println(value);
		}
	}

	/**
	 * 通过JDK的集合框架ArrayList类来完成弹性数组的功能！
	 */
	public static void byArrayList() {
		// 声明
		ArrayList arrayList = new ArrayList();

		// 添加值
		arrayList.add(1234);
		arrayList.add(12341);
		arrayList.add(true);

		// 获取ArrayList的长度
		System.out.println(arrayList.size());

		// 获取指定的值
		System.out.println(arrayList.get(2));

		// 循环
		for (int i = 0; i < arrayList.size(); i++) {
			System.out.println(arrayList.get(i));
		}
		for (Object value : arrayList) {
			System.out.println(value);
		}
	}

	public static void main(String[] args) {
		// testIncrement();
		byArrayList();
	}
}
